﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;

/// <summary>
/// Author.Authority - DimChumHaul 丁诚昊
/// </summary>
namespace DrDimsLib.CoreSDK.CLRExtension
{
    using System.Text.RegularExpressions;

    [Description("字符串常用处理函数库 - 丁诚昊")]
    public static partial class StringExtension
    {
        /// <summary>
        /// 字符串去除重复
        /// </summary>
        /// <param name="value">值，范例1："5555",返回"5",范例2："4545",返回"45"</param>
        public static string Distinct(this string oriStr)
        {
            // 调用 系统的 Enumerable(Linq扩展方法)进行`字符串去重`
            return new string(oriStr.ToCharArray().Distinct().ToArray());
        }
        // 单词计数 购物车原理
        public static Dictionary<string, int> CountWords(this string Content)
        {
            // 使用哈希字典 HashDict
            Dictionary<string, int> HashDict = new Dictionary<string, int>();
            // 数据源 字符串函数Split会自动切割一个字符串为数组[] 参数为分隔符Char
            string[] words = Regex.Split(Content, @"\W+");
            // 字典元素入栈 如果出现了 value ++ 否则入栈置 value = 1
            foreach (var word in words)
            {
                if (string.IsNullOrWhiteSpace(word))
                    continue;
                if (HashDict.ContainsKey(word)) HashDict[word]++;
                else HashDict.Add(word, 1);
            }
            return HashDict;
        }
    }
}